package com.union.widget;

import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;

/**
 * @author 作者吴伟:
 * @version 创建时间：2015年11月23日 下午1:27:42
 * 类说明
 */
public class CustomViewPager extends ViewPager {

	private static final String TAG = "xujun";

	int lastX = -1;
	int lastY = -1;

	public CustomViewPager(Context context) {
		super(context);
	}

	public CustomViewPager(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		int x = (int) ev.getRawX();
		int y = (int) ev.getRawY();
		int dealtX = 0;
		int dealtY = 0;

		switch (ev.getAction()) {
			case MotionEvent.ACTION_DOWN:
				dealtX = 0;
				dealtY = 0;
				// 保证子View能够接收到Action_move事件
				getParent().requestDisallowInterceptTouchEvent(true);
				break;
			case MotionEvent.ACTION_MOVE:
				dealtX += Math.abs(x - lastX);
				dealtY += Math.abs(y - lastY);
				Log.i(TAG, "dealtX:=" + dealtX);
				Log.i(TAG, "dealtY:=" + dealtY);
				// 这里是够拦截的判断依据是左右滑动，读者可根据自己的逻辑进行是否拦截
				if (dealtX >= dealtY) {
					getParent().requestDisallowInterceptTouchEvent(true);
				} else {
					getParent().requestDisallowInterceptTouchEvent(false);
				}
				lastX = x;
				lastY = y;
				break;
			case MotionEvent.ACTION_CANCEL:
				break;
			case MotionEvent.ACTION_UP:
				break;

		}
		return super.dispatchTouchEvent(ev);
	}
}
	
